package com.aiwiown.snackmq.network;

import com.aiwiown.snackmq.network.client.NettyClientTest;
import com.aiwiown.snackmq.network.config.NetworkConfigTest;
import com.aiwiown.snackmq.network.connection.ConnectionManagerTest;
import com.aiwiown.snackmq.network.handler.ClientHandlerTest;
import com.aiwiown.snackmq.network.handler.HeartbeatHandlerTest;
import com.aiwiown.snackmq.network.handler.MessageCodecTest;
import com.aiwiown.snackmq.network.server.NettyServerTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

/**
 * 网络模块测试套件
 * 
 * 包含以下测试类：
 * - NettyServerTest: 服务器功能测试
 * - NettyClientTest: 客户端功能测试
 * - NetworkConfigTest: 网络配置测试
 * - MessageCodecTest: 消息编解码测试
 * - ClientHandlerTest: 客户端处理器测试
 * - HeartbeatHandlerTest: 心跳处理器测试
 * - ConnectionManagerTest: 连接管理器测试
 * - NetworkIntegrationTest: 网络集成测试
 */
@ExtendWith(MockitoExtension.class)
public class NetworkTestSuite {

    @Test
    void testAllNetworkComponents() {
        // 测试所有网络组件的基本功能
        System.out.println("开始运行网络模块测试套件...");
        
        // 这里可以添加一些基本的验证逻辑
        // 由于各个测试类都有独立的测试方法，这里主要作为测试套件的入口点
        assert true; // 简单的断言，确保测试套件可以运行
    }

    @Test
    void testNetworkModuleStructure() {
        // 验证网络模块的基本结构
        System.out.println("验证网络模块结构...");
        
        // 验证各个组件类存在
        assert NettyServerTest.class != null;
        assert NettyClientTest.class != null;
        assert NetworkConfigTest.class != null;
        assert MessageCodecTest.class != null;
        assert ClientHandlerTest.class != null;
        assert HeartbeatHandlerTest.class != null;
        assert ConnectionManagerTest.class != null;
        assert NetworkIntegrationTest.class != null;
        
        System.out.println("网络模块结构验证通过");
    }
} 